JWT加密算法的初级使用

您所在的位置:网站首页 php token验证 JWT加密算法的初级使用

JWT加密算法的初级使用

2023-05-20 14:01| 来源: 网络整理| 查看: 265

1.简介

JSON Web token简称JWT, 是用于对应用程序上的用户进行身份验证的标记。也就是说, 使用 JWTS 的应用程序不再需要保存有关其用户的 cookie 或其他session数据。此特性便于可伸缩性, 同时保证应用程序的安全

2.格式

JWT就是一个字符串,经过加密处理与校验处理的字符串,形式为:A.B.C

官网:JSON Web Tokens - jwt.io

A由JWT头部信息header加密得到

B由JWT用到的身份验证信息json数据加密得到

C由A和B加密得到,是校验部分

3.流程

 

4.示例

导入依赖:

    io.jsonwebtoken     jjwt     0.9.1

编写测试用例:

生成token

@Test     public void testCreateToken() {         //生成token         //1、准备数据         Map map = new HashMap();         map.put("id",1);         map.put("mobile","13800138000");         //2、使用JWT的工具类生成token         long now = System.currentTimeMillis();         String token = Jwts.builder()                 .signWith(SignatureAlgorithm.HS512, "itcast") //指定加密算法                 .setClaims(map) //写入数据                 .setExpiration(new Date(now + 30000)) //失效时间                 .compact();         System.out.println(token); }

解析token 

    /**      * SignatureException : token不合法      * ExpiredJwtException:token已过期      */     @Test     public void testParseToken() {         String token = "上面方法生成的token";         try {             Claims claims = Jwts.parser()                     .setSigningKey("itcast")                     .parseClaimsJws(token)                     .getBody();             Object id = claims.get("id");             Object mobile = claims.get("mobile");             System.out.println(id + "--" + mobile);         }catch (ExpiredJwtException e) {             System.out.println("token已过期");         }catch (SignatureException e) {             System.out.println("token不合法");         }     }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3